package testrank;

/**
 * @author Hagai Cibulski
 *
 */
public final class TestRankConstants {
	private TestRankConstants() {
	}
	
	public static enum TestSet {
		Log4J, CommonsMath
	}
	public static final TestSet TEST_SET = TestSet.Log4J; 
		
	public static final String SOURCE_DIR = 
		TEST_SET == TestSet.Log4J ?
			"../src/main/java" ://log4j 
			//"src/main/java" :	//log4j [-pre]
			"src/main/java";	//Lang, Math
		//"src";				//SQL
		
		
	public static final String TEST_DIR = 
		TEST_SET == TestSet.Log4J ?
			"src/java-tests" :		//log4j
			//"tests/src/java" :	//log4j [-pre]
			"src/test/java";		//Lang, Math   
		//"test";//SQL
	
	// TODO musn't use an absolute path here
	public static final String CONF_DIR = 
		"E:/Dev/workspace/TestRanking/conf";
	
	public static final boolean USE_ALT_NORMALIZATION = false;
	
	public static final boolean USE_VAL_PROP_JACCARD_NORMALIZATION = false;
	
	public static enum AffinityNormalization {
		None, ByAffSum, ByLogAffSum1, ByLogAffSumE, ByTfIdfContext, ByAffSumAvg, ByAffSumGeomAvg, Recursive
	}
	public static final AffinityNormalization AFFINITY_ALT_NORMALIZATION = 
		AffinityNormalization.None;
	
	public static enum GroupAffinityCalc {
		AsyAvg1, AsyAvg2, AsyAvg3, AsyAvg4, Cosine  
	}
	public static final GroupAffinityCalc GRP_AFFINITY_CALC = 
		GroupAffinityCalc.AsyAvg1;
	
	public static enum EquivalentScoresStrategy {
		WorstCase,
		ExpectedCase
	}
	public static final EquivalentScoresStrategy EQUIVALENT_SCORES_STRATEGY = 
		EquivalentScoresStrategy.ExpectedCase;
	
	public static enum AffinityLiteralsSimilarityStrategy {
		EqualsIgnoreCase, EditDistance
	}
	public static final AffinityLiteralsSimilarityStrategy AFFINITY_LITERALS_SIMILARITY_STRATEGY = 
		AffinityLiteralsSimilarityStrategy.EqualsIgnoreCase;//EditDistance
	
	public static enum AffinityLiteralsWeightStrategy {
		Const, BySum, ByMin
	}
	public static final AffinityLiteralsWeightStrategy AFFINITY_LITERALS_WEIGHT_STRAGEGY =
		AffinityLiteralsWeightStrategy.Const;//ByMin
}
